package shell.command;

import java.io.PrintStream;

/**
 * Commande d'un Shell.
 * 
 * @version 1.0
 */
public interface ShellCommand {
    /**
     * Getter du nom de la commande.
     * 
     * @return Le nom de la commande.
     */
    String getName();

    /**
     * Getter du nom d'usage de la commande.
     * 
     * @return Le nom d'usage de la commande.
     */
    String getUsage();

    /**
     * Getter de la description de la commande.
     * 
     * @return La description de la commande
     */
    String getShortDescription();

    /**
     * Exécution de la commande.
     * 
     * @param cmdline
     *            Ligne de commande en entrée, contenant éventuellement les
     *            paramètres
     * @param out
     *            Flux en sortie
     * @param err
     *            Flux d'erreurs
     */
    void execute(String cmdline, PrintStream out, PrintStream err);
}
